A*N*T*Z
ANTIA'S NEW TRUE Z
\
H
EROES
- Vlastnφ mφstnosti -
Jak jste se u₧ urΦit∞ dozv∞d∞li, ANTZ umo₧≥ujφ pomocφ tlaΦφtka v menu naΦφtat
u₧ivatelskΘ mapy s koncovkou ".USR". Jak se ale vytvß°ejφ? Co vÜechno je k tomu
pot°eba? Je to t∞₧kΘ?
Pokud chcete zkusit vyrobit vlastnφ mφstnost, postupn∞ si
p°edvedeme, jak - staΦφ sledovat nßsledujφcφ kroky.
- Prvnφ mφstnost krok za krokem -
Jak u₧ bylo naznaΦeno, tvorba vlastnφ mφstnosti je velice jednoduchß. ┌pln∞ vßm bude
staΦit i obyΦejnΘ "Microsoft Visual N++" (znßm² tΘ₧ jako "Notepad" Φi "Poznßmkov² blok").
Krok 1: Vytvo°enφ souboru
V podadresß°i hry "DATA\UserLevels" vytvo°te soubor "MyFirstRoom.usr" a otev°ete
jej v Notepadu.
Krok 2: Tvar mφstnosti, zdi a chodbiΦky
Do souboru zapiÜte tyto °ßdky (bez nadpisu, jen ty hv∞zdiΦky):
MyFirstRoom.usr
|
**********
**** * *
* * *
*** *
** *****
** ****
* **
** * **
** ******
**********
|
Takhle vytvo°φte mφstnost 10x10 polφΦek velikou. Na mφstech hv∞zdiΦek
budou zdi, na mφstech mezer budou volnß pole. Zdi jsou d∙le₧itΘ - ka₧dß mφstnost
musφ b²t kolem dokola (a₧ do kraj∙) obklopenß zdmi, aby z nφ neÜlo "utΘct"
(a to i kdy₧ je jinak uzav°enß). To znamenß, ₧e vÜechny °ßdky mapy musφ
b²t stejn∞ dlouhΘ. Pokud n∞kterΘ z t∞chto pravidel nedodr₧φte,
a vytvo°φte n∞co takovΘhohle:
MyFirstRoom.usr
|
*******
**** * *
* * *
*** *
* *****
** ***
* *
** * *
* *****
**** |
hra mφstnost nenaΦte a upozornφ vßs na pravd∞podobnou chybu. Maximßlnφ mo₧nß
velikost mφstnosti je 24x24 polφΦek, vΦetn∞ okrajov²ch zdφ.
Krok 3: Becherovka a mφsto na ni
Kapky Becherovky do mapy p°idßte prost∞ zapsßnφm znaku b (malΘ "b")
na pat°iΦnΘ mφsto. Mφsto, kam mß hrßΦ Becherovku dostat (u nßs mu °φkßme "spi₧φrna")
oznaΦφte znakem ?. Kapek Becherovky musφ b²t v₧dy alespo≥ tolik, kolik je
v map∞ spi₧φren - jinak vßs hra na chybu upozornφ. P°idßme tedy do mφstnosti dv∞ kapky
a dv∞ spi₧φrny:
MyFirstRoom.usr
|
**********
**** *? *
*b * *
*** *
** *****
** ****
* b **
** * ? **
** ******
**********
|
Pokud byste cht∞li mφsto kapek Becherovky pou₧φt bedny ze Sokobana, pou₧ijte
znak x. Bedny taky majφ tu v²hodu, ₧e jim nevadφ okena.
Krok 4: Zabydlenφ mφstnosti
V mφstnosti nßm po°ßd jeÜt∞ n∞co chybφ - p°esn∞ tak, jsou to mravenci. Ty m∙₧eme p°idat
pomocφ znak∙ T, F, B a W pro Tinka, Flo, Benedikta a Vilφka.
P°idßme si je tedy do mφstnosti vÜechny Φty°i:
MyFirstRoom.usr
|
**********
**** *?*
*b *F *
*** *
**T *****
** ****
* b**
**B * W ?**
** ******
********** |
Pokud bychom se spokojili s tφmto, byli by vÜichni Φty°i na zaΦßtku otoΦenφ
nahoru. Aby byl ka₧d² otoΦen² jinam, p°idßme do souboru Φty°i °ßdky (je jedno,
jestli je dßme na zaΦßtek, doprost°ed, nebo na konec):
MyFirstRoom.usr
|
**********
**** *?*
*b *F*
*** *
**T *** *
** ****
* b**
**B * W?**
** ******
**********
Tink: >
Flo: v
Benedict: ^
Willi: <
|
ZnaΦky uvedenΘ za dvojteΦkou (cirkumflex na klßvese "6", malΘ "v" a znamΘnka menÜφ a v∞tÜφ)
slou₧φ jako Üipky pro urΦenφ sm∞ru natoΦenφ mravence. JmΘna m∙₧ete pou₧φvat anglickß (Benedict, Willi),
ale i Φeskß (Benedikt, Vilφk) - ale pomyslete p°i tom na ty ubohΘ anglicky mluvφcφ hrßΦe...
Krok 5: Nejen Becherovkou ₧iv je mravenec
Krom∞ Becherovky je mravenec ₧iv (p°φpadn∞ mrtev) takΘ dalÜφmi kapkami - vodou,
okenou,
nebo repelentem. Tyhle kapky se vklßdajφ pomocφ znak∙ w (voda), o (okena)
a r (repelent). Tak
si n∞jakΘ kapky p°idßme - pane vrchnφ, dvakrßt vodu, dvakrßt repelent a jednou okenu!
MyFirstRoom.usr
|
**********
**** *?*
*br *F*
*** *
**Tw *** *
**w ****
* o b**
**Br * W?**
** ******
**********
Tink: >
Flo: v
Benedict: ^
Willi: <
|
Krok 6: Ferda mravenec - p°edm∞ty vÜeho druhu
Te∩ se dostßvßme asi k tΘ nejzajφmav∞jÜφ Φßsti - do mφstnosti m∙₧eme vlo₧it
libovoln∞ tvarovan² objekt. StaΦφ, kdy₧ na polφΦka, na kter²ch mß p°edm∞t le₧et,
zapφÜeme libovoln² znak (pφsmena, Φφslice, interpunkΦnφ znamΘnka...), kter² nenφ
vyu₧it² nap°. pro n∞kterΘho z mravenc∙, kapky atd. Znak takΘ musφ b²t pou₧iteln²
v nßzvech soubor∙, tak₧e ₧ßdnΘ \ / : * ? "
< > nebo |. Nepou₧φvejte takΘ Φßrku ani st°ednφk (,
a ;).
Z polφΦek oznaΦen²ch stejn²m znakem pak vznikne jeden objekt. Tak si rovnou do mφstnosti
n∞jakΘ p°idßme:
MyFirstRoom.usr
|
**********
**** $ *?*
*br $L *F*
*** LLL *
**Tw *** *
**w ****
* o b**
**Br* W?**
**11 ******
**********
Tink: >
Flo: v
Benedict: ^
Willi: <
|
Vlo₧ili jsme tyto t°i p°edm∞ty:
- dvoupolφΦkov² vodorovn² p°edm∞t ze znak∙ 1 pod Benediktem
- dvoupolφΦkov² svisl² p°edm∞t ze znak∙ $ v hornφ Φßsti mφstnosti
- Φty°polφΦkov² p°edm∞t ve tvaru L ze znak∙ L, vedle Flo
Takto je mo₧nΘ vytvo°it objekty libovolnΘho tvaru (dokonce ani nemusφ b²t souvislΘ, tedy
z jednoho kusu - m∙₧ete tak vytvo°it t°eba propojenΘ magnety nebo dvojteΦku z psacφho stroje...)
Pro vytvß°enφ objekt∙ m∙₧ete bezpeΦn∞ pou₧φt tyto znaky:
acdefghijklmpqstyzACDEGHIJKLMNOPQRSYZ0123456789.;º'[]{}~!@#$%&_-+=
NejlepÜφ a nejp°ehledn∞jÜφ ale asi bude pou₧φvat hlavn∞ Φφslice.
Pokud nemusφte, nepou₧φvejte pφsmena s hßΦky, Φßrkami a jinou diakritikou.
TakΘ se sna₧te pro p°edm∞ty pou₧φvat bu∩ jen malß, nebo jen velkß
pφsmena - Windows je toti₧ (na rozdφl nap°. od Linuxu) v nßzvech soubor∙ nerozliÜujφ,
tak₧e by vznikly potφ₧e p°i naΦφtßnφ soubor∙ s obrßzky.
Krok 7: ZahradniΦenφ, neboli p°idßvßnφ listφ
DalÜφm d∙le₧it²m prvkem jsou listy, kterΘ jednak vypadajφ celkem hezky, a hlavn∞
- jdou snφst. Listy lze p°ipojovat k existujφcφm objekt∙m, nebo vytvo°it list
jako samostatn² p°edm∞t (kter² pak jde cel² snφst).
SamostatnΘ listy m∙₧eme p°idat
pomocφ znak∙ n, u, ( a ):
n pro samostatn² list ÜpiΦkou nahoru
u pro samostatn² list ÜpiΦkou dol∙
( pro samostatn² list ÜpiΦkou doleva
) pro samostatn² list ÜpiΦkou doprava
Listy p°ipojenΘ k n∞jakΘmu p°edm∞tu se musejφ nachßzet hned vedle n∞j, natoΦenΘ
sprßvn²m sm∞rem (ÜpiΦkou od p°edm∞tu). Pou₧φvajφ se pro n∞ znaky ^, v,
< a >:
^ pro p°ipojen² list se ÜpiΦkou nahoru
v pro p°ipojen² list se ÜpiΦkou dol∙
< pro p°ipojen² list se ÜpiΦkou doleva
> pro p°ipojen² list se ÜpiΦkou doprava
Tak do mφstnosti hned n∞jakΘ to listφ nasypeme:
MyFirstRoom.usr
|
**********
****< $ *?*
*br $L*F*
*** v LLL*
**Tw *** *
**w ****
*) o b**
**Br*n W?**
**11******
**********
Tink: >
Flo: v
Benedict: ^
Willi: <
|
K p°edm∞tu ze znak∙ $ jsme te∩ p°ipojili dva listy (jeden mφ°φ doleva,
druh² dol∙), a navφc jsme do
mφstnosti p°idali dva samostatnΘ listy - jeden kousek od Benedikta, druh² hned
vedle Vilφka.
Krok 8: Obrßzky v klidu i v pohybu
Te∩ u₧ je mφstnost vlastn∞ hotovß - lze ji otev°φt a hrßt, uklßdat si v²sledky
atd. Nevypadß ovÜem nic moc - zdi jsou ÜedΘ, objekty jsou slo₧enΘ ze ΦtvereΦk∙
v r∙zn²ch odstφnech modrΘ. Pomoc je snadnß - staΦφ do podadresß°e "DATA\UserLevels\UserGraphics"
zkopφrovat ty sprßvnΘ obrßzky a pat°iΦn∞ je pojmenovat, aby je vaÜe mφstnost
poznala.
-Pozadφ-
Obrßzek pozadφ by se m∞l sklßdat ze ΦtvereΦk∙, na kter²ch je
bu∩ ze∩, nebo volno - tohle by m∞lo jφt na prvnφ pohled odliÜit.
ANTZ nejΦast∞ji
pou₧φvajφ pozadφ v rozliÜenφ 8x8 pixel∙ na jedno polφΦko, n∞kdy ale takΘ 32x32
pixel∙ na jeden Φtverec. V tomhle sm∞ru tedy nenφ ₧ßdnΘ omezenφ, jenom je
pot°eba °φct, ₧e pozadφ menÜφ ne₧ 8x8 pixel∙ na polφΦko vypadajφ u₧ hodn∞
hranat∞, a rozliÜenφ v∞tÜφ ne₧ 32x32 pixel∙ na pole je zbyteΦnΘ, proto₧e si hra
pozadφ stejn∞ upravφ na tuto velikost.
Soubor s obrßzkem m∙₧e b²t ve formßtu
.BMP nebo .TGA, nßzev musφ znφt "NßzevMφstnostiBackground.bmp", respektive
"NßzevMφstnostiBackground.tga".
Pro naÜi ukßzkovou mφstnost tedy vezmeme
u₧ p°ipraven² soubor "Background.bmp" a p°ejmenujeme jej na
"MyFirstRoomBackground.bmp".
Nakonec jeÜt∞ do souboru s mφstnostφ p°idßme (op∞t na libovolnΘ mφsto) °ßdek
s celkovou velikostφ pozadφ v pixelech (v naÜem p°φpad∞ 80x80 pixel∙):
MyFirstRoom.usr
|
map size: 80 x 80 pixels
**********
****<$ *?*
*br $L*F*
*** vLLL*
**Tw *** *
**w ****
*) o b**
**Br*nW?**
**11******
**********
Tink: >
Flo: v
Benedict: ^
Willi: <
|
╪ßdek nemusφ obsahovat p°esn∞ toto - staΦφ jak²koliv °ßdek zaΦφnajφcφ na "map
size", kter² po dvojteΦce obsahuje dv∞ Φφsla - skuteΦnou Üφ°ku a v²Üku obrßzku.
Ostatnφ Φßsti ("x", "pixels" a jinΘ slou₧φ jenom pro zlepÜenφ Φitelnosti - m∙₧ete
je psßt Φesky, ve zkratce, nebo t°eba v∙bec) - hra p°ijme nap°φklad i °ßdek
"map size:80-80".
-P°edm∞ty-
P°i°azovßnφ obrßzk∙ p°edm∞t∙m nenφ o moc t∞₧Üφ. Pro ka₧d² p°edm∞t zapsan² pomocφ
vlastnφch znak∙ (tj. ne kapky nebo listy) vytvo°te nebo najd∞te soubor
s pat°iΦn²m obrßzkem (o listy se v∙bec nestarejte, ty se zobrazφ samy).
Obrßzek pojmenujte "NßzevMφstnostiZnakP°edm∞tu.bmp" respektive
"NßzevMφstnostiZnakP°edm∞tu.tga".
TGA soubory majφ tu v²hodu, ₧e mohou obsahovat i tzv. masku pr∙hlednosti, kterß
urΦuje, jak moc je kterß Φßst obrßzku pr∙hlednß (lze tak vytvß°et t°eba
polopr∙svitnΘ obrßzky
sklen∞n²ch p°edm∞t∙). BMP obrßzky toto neumo₧≥ujφ; hra tedy jako pr∙hlednou barvu
nastavφ bφlou (RGB: 255, 255, 255) - proto v BMP obrßzcφch Φistou bφlou pou₧φvejte
jen na mφsta, kterß chcete mφt pr∙hlednß.
Velikost obrßzk∙ p°edm∞t∙ musφ b²t v m∞°φtku 1:1, Φili ka₧dΘ polφΦko 32x32 pixel∙
velikΘ. Ka₧d² p°edm∞t takΘ m∙₧e b²t rozanimovan² - staΦφ, aby v obrßzku byly
za sebou se°azenΘ jednotlivΘ snφmky animace (v jednom °ßdku).
Pro naÜi mφstnost budeme pot°ebovat t°i obrßzky:
- 64x32 pixel∙ velik² obrßzek "MyFirstRoom1.tga" pro p°edm∞t ze znak∙ 1 pod Benediktem
- 32x64 pixel∙ velik² obrßzek "MyFirstRoom$.tga" pro p°edm∞t ze znak∙ $ v hornφ Φßsti mφstnosti
- 96x64 pixel∙ velik² obrßzek "MyFirstRoomL.bmp" se Φty°mi snφmky pro p°edm∞t ze znak∙ L vedle Flo
Najφt je m∙₧ete v podadresß°i "DATA\UserLevels\UserGraphics" pod nßzvy "Branch1.tga", "Branch2.tga"
a "SharkNail.bmp". Tyto soubory staΦφ jen p°ejmenovat.
Ka₧d² p°edm∞t pot°ebuje vlastnφ obrßzek.
Pak u₧ jenom pro ka₧d² p°edm∞t s obrßzkem vlo₧φme na libovolnΘ mφsto souboru s mφstnostφ
nßsledujφcφ °ßdek:
"object ZnakP°edm∞tu: N frame(s), X x Y pixels"
MyFirstRoom.usr
|
map size: 80 x 80 pixels
**********
****<$ *?*
*br $L*F*
*** vLLL*
**Tw *** *
**w ****
*) o b**
**Br*nW?**
**11******
**********
Tink: >
Flo: v
Benedict: ^
Willi: <
object 1: 1 frame, 64 x 32 pixels
object $: 1 frame, 32 x 64 pixels
object L: 4 frames, 96 x 64 pixels
|
Jako minule, ani tady nejsou v²razy "frame(s)", "pixels" atd. d∙le₧itΘ - hra p°ijme nap°φklad i °ßdek
"object L: 4-96-64" nebo "object L: Drah² poΦφtaΦi, obrßzek L mß tuÜφm 4 snφmky, a je 96 pixel∙ Üirok²
a 64 pixel∙ vysok²". D∙le₧itΘ je zachovat po°adφ snφmky - Üφ°ka - v²Üka.
èφ°ka a v²Üka se vztahujφ k velikosti jednoho snφmku, ne celΘho obrßzku. Celkovou velikost obrßzku nastavte
tak, aby jednotlivΘ snφmky pokryly celou plochu (nenechßvejte obrßzek v∞tÜφ, ne₧ je pot°eba).
Krok 9: DalÜφ mo₧nosti
Soubory vlastnφch mφstnostφ umo₧≥ujφ jeÜt∞ n∞kolik dalÜφch v∞cφ: pokud nap°φklad vytvß°φte
·rovn∞ ze Sokobana, m∙₧e se hodit mo₧nost vypnout zobrazovßnφ spi₧φren tmavÜφm
puntφkem. Toho docφlφte pomocφ vlo₧enφ °ßdku
"show lift-zones: 0"
Hlavn∞ ale nezapome≥te mφsta pro Becherovku oznaΦit alespo≥ v obrßzku pozadφ
(t°eba t∞mi zelen²mi teΦkami) - jinak vßm hrßΦi moc nepod∞kujφ.
Do souboru s mφstnostφ takΘ m∙₧ete p°idßvat komentß°e - cokoliv od st°ednφku do
konce °ßdku hra ignoruje.
Hra takΘ do souboru p°idßvß °ßdek s poΦtem krok∙ v dosavadnφm nejkratÜφm °eÜenφ
v podob∞ nap°.
"solution: 286"
- Ono to mluvφ! -
Te∩ je naÜe mφstnost skoro dokonalß. Chybφ jφ snad jedinß v∞c - n∞jak² ten rozhovor,
nebo alespo≥ komentß° od naÜich mravenc∙. I to jde jednoduÜe za°φdit.
V podadresß°i "DATA\UserLevels\UserDialogs" vytvo°φme soubor s nßzvem "NßzevMφstnosti.dlg",
v naÜem p°φpad∞ tedy "MyFirstRoom.dlg".
Do n∞j pak budeme zapisovat jednotlivΘ repliky. Zßpis ka₧dΘ repliky se sklßdß ze
dvou °ßdk∙. Na prvnφm jsou spouÜt∞cφ podmφnky, na druhΘm vlastnosti repliky
a samotn² text. Mezi t∞mito dv∞ma °ßdky nesmφ b²t ₧ßdnΘ °ßdky vynechanΘ. Naopak
mezi jednotliv²mi dvojicemi °ßdky vynechßvat lze - zvyÜuje to Φitelnost souboru.
SpouÜt∞cφ podmφnky
Ka₧dß replika mß jednu nebo vφce spouÜt∞cφch podmφnek, kterΘ urΦujφ, kdy bude
danß replika pronesena. Replika je spuÜt∞na jen tehdy, kdy₧ jsou vÜechny jejφ
podmφnky spln∞ny. Podmφnek je mo₧nΘ nastavit vφce - staΦφ je na °ßdku odd∞lovat
Φßrkami, nap°.:
"Time > 5000, Steps >= 4, LeavesEaten = 0"
Ka₧dß z podmφnek mß v²raz na levΘ a pravΘ stran∞ a operßtor porovnßnφ mezi nimi.
Jako operßtory porovnßnφ lze pou₧φt tato znamΘnka:
= (levß strana se rovnß pravΘ stran∞)
<>
(levß strana se nerovnß pravΘ stran∞)
>= (levß strana je v∞tÜφ nebo rovnß pravΘ stran∞)
<= (levß strana je menÜφ nebo rovnß pravΘ stran∞)
>
(levß strana je v∞tÜφ ne₧ pravß strana)
<
(levß strana je menÜφ ne₧ pravß strana)
V²razy se mohou sklßdat z prom∞nnΘ, ke kterΘ je p°iΦtena nebo odeΦtena n∞jakß
celoΦφselnß konstanta (nap°φklad +30, -1 atd.) Pokud je ve v²razu prom∞nnß, musφ
b²t na prvnφm mφst∞, konstanta musφ b²t uvedena a₧ za nφ. ANTZ
rozeznßvajφ tyto prom∞nnΘ:
Time, Steps, LeavesEaten, Tink X,
Tink Y, Flo X, Flo Y, Benedict X, Benedict Y,
Willi X, Willi Y,
ObjectByChar ? X,
ObjectByChar ? Y,
ObjectByIndex ? X,
ObjectByIndex ? Y,
AlreadySaid #
Time - ╚as, uplynul² od startu mφstnosti, m∞°en² v milisekundßch
Steps - PoΦet krok∙, kterΘ u₧ hrßΦ ud∞lal
LeavesEaten - PoΦet list∙, kterΘ u₧ Vilφk sn∞dl
Tink X, Flo X, Benedict X, Willi X
- Vodorovnß pozice p°φsluÜnΘho mravence. Lev² okraj mapy mß X sou°adnici 1, ale
na nφ musφ b²t ze∩. Nejni₧Üφ smysluplnß hodnota je tedy 2 - tehdy mravenec stojφ
u levΘho okraje mapy.
Tink Y, Flo Y, Benedict Y, Willi Y
- Svislß pozice p°φsluÜnΘho mravence. Hornφ okraj mapy mß Y sou°adnici 1, ale
na nφ musφ b²t ze∩. Nejni₧Üφ smysluplnß hodnota je tedy 2 - tehdy mravenec stojφ
u hornφho okraje mapy.
ObjectByChar ? X - Vodorovnß pozice levΘho hornφho rohu
objektu. Mφsto otaznφku dopl≥te znak, ze kterΘho je dan² objekt slo₧en. Takto
jdou zφskßvat informace pouze o p°edm∞tech, kterΘ jsou slo₧enΘ z vlastnφch
znak∙. Nelze tak zφskat informace o kapkßch nebo samostatn²ch listech.
ObjectByChar ? Y - Svislß pozice levΘho hornφho rohu
objektu. Mφsto otaznφku dopl≥te znak, ze kterΘho je dan² objekt slo₧en.
ObjectByIndex ? X - Vodorovnß pozice levΘho hornφho rohu
objektu. Mφsto otaznφku dopl≥te po°adφ danΘho objektu. Takto lze p°istupovat ke
vÜem objekt∙m, ka₧d² ve h°e dostane svΘ "po°adφ" - objekty jsou Φφslovßny
od jedniΦky, postupn∞ zleva doprava a shora dol∙. P°esto bude nejsnazÜφ si Φφslo
zkontrolovat p°φmo ve h°e: naΦt∞te svou mφstnost a podr₧te klßvesu Control
- na vÜech objektech se objevφ jejich Φφsla.
ObjectByIndex ? Y - Svislß pozice levΘho hornφho rohu
objektu. Mφsto otaznφku dopl≥te po°adφ danΘho objektu.
AlreadySaid # - UrΦuje, jestli byla danß replika u₧ pronesena,
nebo ne. Mφsto m°φ₧ky dopl≥te ID (identifikaΦnφ Φφslo, viz nφ₧e) repliky. Pokud u₧ byla
pronesena, prom∞nnß mß hodnotu 1, jinak mß hodnotu 0. Ka₧dß replika se pronese
nejv²Üe jednou.
╪ßdky s podmφnkami pak mohou vypadat t°eba takto (bez uvozovek):
"Time > 7000, Tink X = ObjectByIndex 10 X + 1, Tink Y = ObjectByIndex 10 Y"
...co₧ znamenß...
Spus¥ repliku, pokud u₧ od startu uplynulo p°es 7 sekund a Tink je na polφΦku
vpravo od levΘho hornφho rohu objektu s Φφslem 10.
"Steps >= 20, ObjectByChar L X = 2, AlreadySaid 5 = 0"
...co₧ znamenß...
Spus¥ repliku, pokud u₧ hrßΦ ud∞lal alespo≥ 20 krok∙, p°edm∞t slo₧en² ze znak∙
L je u levΘho okraje mφstnosti a jeÜt∞ nebyla pronesena replika
s Φφslem 5.
Vlastnosti repliky
Vlastnosti a text repliky se zapisujφ na druh² °ßdek.
ZaΦφnß znaky -> nebo =>, nßsledovan²mi jmΘnem mluvφcφho mravence
(Tink, Flo, Benedict, Willi, nebo jejich Φeskß jmΘna) a dvojteΦkou.
PotΘ je uveden vlastnφ text repliky - ten je zapsßn mezi dvojici
cirkumflex∙ (^), svislou Φarou (|) je rozd∞len na dv∞ Φßsti -
anglickou a Φeskou. Pokud se necφtφte na vytvß°enφ anglick²ch rozhovor∙, m∙₧ete
Φßst p°ed svislou Φarou vynechat - Φßru ale zapiÜte v₧dy.
"-> Willi: ^Hello, player!|Ahoj, hrßΦi!^"
"-> Willi: ^|Ahoj, hrßΦi!^"
Za text je jeÜt∞ pot°eba doplnit informace o ID (identifikaΦnφm Φφsle)
repliky, ΦasovΘ prodlev∞, kterß musφ uplynout od konce minulΘ repliky (v milisekundßch),
a v²razu mluvφcφho mravence. Tyto ·daje lze zadßvat v libovolnΘm
po°adφ, Delay a Face jsou nepovinnΘ.
"-> Willi: ^Oof, I hope you don't want me to eat that all, player...|Uf,
hrßΦi, doufßm, ₧e nechceÜ, abych to sn∞dl vÜechno...^ ID: 17 Delay: 1500 Face: 1"
Tato replika bude mφt ID 17, pronesena bude nejd°φve vte°inu a p∙l po
konci minulΘ v∞ty, a Vilφk p°i nφ nasadφ v²raz Φφslo 1.
Pokud nenφ uveden
parametr Delay, nastavφ se automaticky na 1000 (jednu sekundu). Pokud
nenφ uveden parametr Face, nasadφ mravenec neutrßlnφ v²raz 2. Hra
obsahuje tyto v²razy:
- èiroce otev°enΘ oΦi
- Neutrßlnφ v²raz
- P°iv°enΘ oΦi
- Zav°enΘ oΦi
- Smutn² v²raz
- Tink - mrknutφ
Flo - Üklebenφ
Benedikt - mraΦenφ
Vilφk - zvednutΘ oboΦφ
- P°ekvapenφ
Oba °ßdky repliky by pak mohly vypadat takhle:
MyFirstRoom.dlg
|
LeavesEaten >= 3
-> Willi: ^Oof, I hope you don't want me to eat that all, player...|Uf,
hrßΦi, doufßm, ₧e nechceÜ, abych to sn∞dl vÜechno...^ ID: 17 Delay: 1500 Face: 1
|
Replika se spustφ, pokud v naÜφ mφstnosti snφ Vilφk t°i a vφce list∙. Vilφk p°i
nφ doÜiroka otev°e oΦi.
Zvuk v MP3
Pokud budete mφt k dispozici MP3 soubor s danou replikou, staΦφ jej zkopφrovat
do podadresß°e "DATA\UserLevels\UserSpeech" pod nßzvem "NßzevMφstnostiIDRepliky_╚φsloJazyka.mp3"
- Φφslo jazyka je bu∩ 1 pro angliΦtinu, nebo 2 pro ΦeÜtinu. Vilφkova replika
z p°edchozφho p°φkladu by tedy m∞la pro ΦeÜtinu soubor se jmΘnem "MyFirstRoom17_2.mp3"
- v adresß°i u₧ se nachßzφ pod jmΘnem "WilliOof_2.mp3" - staΦφ ji tedy jen p°ejmenovat.
Pou₧φvejte rad∞ji soubory v ni₧Üφ kvalit∞ - soubory s vyÜÜφm bitrate hru zpomalujφ.
SpouÜt∞nφ repliky vφce zp∙soby
Kdy₧ budete chtφt jednu repliku aktivovat n∞kolika r∙zn²mi zp∙soby, staΦφ ji do
.DLG souboru zapsat vφcekrßt - poka₧dΘ se stejn²m textem a ID, ale s jin²mi
podmφnkami. Replika se pak pronese (po°ßd jenom jednou) po spln∞nφ kterΘkoli
skupiny podmφnek.
MySecondRoom.dlg
|
Tink X = ObjectByIndex 1 X - 1, Tink Y = ObjectByIndex 1 Y
-> Tink: ^I'm at the drop!|Jsem u kapky!^ ID: 34
Tink X = ObjectByIndex 1 X + 1, Tink Y = ObjectByIndex 1 Y
-> Tink: ^I'm at the drop!|Jsem u kapky!^ ID: 34
Tink X = ObjectByIndex 1 X, Tink Y = ObjectByIndex 1 Y - 1
-> Tink: ^I'm at the drop!|Jsem u kapky!^ ID: 34
Tink X = ObjectByIndex 1 X, Tink Y = ObjectByIndex 1 Y + 1
-> Tink: ^I'm at the drop!|Jsem u kapky!^ ID: 34
|
V tomto p°φklad∞ Tink oznßmφ, ₧e je u kapky (objektu s Φφslem 1),
a¥ k nφ p°ijde z kterΘkoliv strany.
Nßvaznost jednotliv²ch replik - rozhovory
Pokud chcete, aby na sebe n∞kolik replik navazovalo a tvo°ilo tak rozhovor,
staΦφ tomu p°izp∙sobit jejich podmφnky. TakΘ nezapome≥te sprßvn∞ nastavovat
hodnoty Delay - nap°φklad u jednΘ v∞ty rozd∞lenΘ do dvou replik by m∞la
mφt druhß replika Delay nastaveno na 0, aby odstartovala ihned po
skonΦenφ tΘ prvnφ. Pokud tuto vlastnost nenastavφte, bude jejφ hodnota 1000
milisekund.
MyThirdRoom.dlg
|
Time > 5000
-> Flo: ^Let's show our player how to make dialogues!|Poj∩me hrßΦi ukßzat,
jak na rozhovory!^ ID: 1 Face: 1
AlreadySaid 1 = 1
-> Tink: ^Okay.|Tak fajn.^ ID: 2 Face: 3
AlreadySaid 2 = 1
-> Flo: ^It's a pity...|Jenom je Ükoda...^ ID: 3 Face: 5
AlreadySaid 3 = 1
-> Flo: ^...we have no MP3 files for this dialoque.|...₧e pro tenhle rozhovor
nemßme ₧ßdnΘ MP3.^ ID: 4 Delay: 0 Face: 6
AlreadySaid 4 = 1
-> Tink: ^Well, I think this should be enough.|No, myslφm, ₧e tohle mu bude
staΦit.^ ID: 5 Delay: 1500 Face: 6
|
Repliky nejen od mravenc∙
PronßÜet repliky nemusejφ jen mravenci - mluvit mohou p°edm∞ty, vyprav∞Φ,
rodilφ mluvΦφ...
StaΦφ jako mluvφcφho zapsat libovolnΘ jinΘ jmΘno,
a na zaΦßtek obou polovin textu (i ΦeskΘ, i anglickΘ) vlo₧it °et∞zec
urΦujφcφ barvu textu. ╪et∞zec mß podobu #$00ffffff, kde poslednφch Üest
znak∙ hexadecimßln∞ reprezentuje barvu ve slo₧kßch B(modrß), G(zelenß)
a R(Φervenß). Prvnφ Φty°i znaky musφ z∙stat #$00. Pokud barvu nezadßte,
bude Üedß.
#$00000000 - Φernß
#$00ffffff - bφlß
#$00ff0000 - syt∞ modrß
#$0000ff00 - syt∞ zelenß
#$000000ff - syt∞ Φervenß
#$00ffff00 - azurovß
#$00ff00ff - purpurovß
#$0000ffff - ₧lutß
atd...
Pokud vaÜe replika bude obsahovat prßzdn² text (tj. ^|^) a jako
mluvφcφ nebude zapsßn ₧ßdn² mravenec, nebude replika sice zobrazena, ale pokud hra
nalezne pat°iΦn² MP3 soubor, p°ehraje jej - tak lze do mφstnostφ zapracovat t°eba
zvonφcφ telefon nebo jinΘ zvuky. V nßsledujφcφm p°φklad∞ bychom pro zvuk
telefonu pot°ebovali soubor "MyFourthRoom15_1.mp3" pro anglickou verzi,
a "MyFourthRoom15_2.mp3" pro Φeskou:
MyFourthRoom.dlg
|
Time > 2000
-> Nail: ^#$00997676Hello...|#$00997676Ahoj...^ ID: 1 Face: 1
Benedict X = 4, Benedict Y = 6
-> Phone: ^|^ ID: 15
|
Triky s podmφnkami, aneb "Bylo, nebylo..."
Pokud pot°ebujete n∞jakou repliku pronßÜet v zßvislosti na tom, jestli byla urΦitß podmφnka
spln∞na n∞kdy d°φve, lze toho docφlit jednφm mal²m trikem:
Vlo₧te do souboru prßzdnou repliku (tedy s textem ^|^, a pochopiteln∞ takΘ
bez zvuku v MP3), jejφm₧ mluvΦφm nebude ₧ßdn² mravenec. Tu nechte "spustit" za dan²ch podmφnek
- nap°. pokud Flo dojde do rohu mφstnosti. Proto₧e bude jejφ text prßzdn², nic viditelnΘho
(nebo slyÜitelnΘho) se nestane. Jejφ prom∞nnß AlreadySaid ale nabyde hodnoty 1.
Toho lze n∞kdy pozd∞ji vyu₧φt:
MyFifthRoom.dlg
|
Flo X = 2, Flo Y = 2
-> Nothing: ^|^ ID: 318
Steps >= 100, AlreadySaid 318 = 0, AlreadySaid 320 = 0
-> Flo: ^Oof, so many steps and I haven't been to the corner yet!|Uf, tolik jsem se nachodila, a jeÜt∞ jsem ani nebyla v rohu!^ ID: 319
Steps >= 100, AlreadySaid 318 = 1, AlreadySaid 319 = 0
-> Flo: ^Oof, so many steps... At least, I've been to the corner...|Uf, tolik jsem se nachodila... Alespo≥, ₧e u₧ jsem byla v rohu...^ ID: 320
|
- Ono to i hraje! -
Pokud chcete, aby vaÜe mφstnost vypadala skuteΦn∞ profesionßln∞, m∙₧ete do nφ
p°idat i vlastnφ hudbu ve formßtu MIDI. K tomu staΦφ v adresß°i "DATA\UserLevels\UserMusic"
vytvo°it podadresß° "NßzevMφstnosti" a zkopφrovat do n∞j jeden nebo vφce ".mid"
soubor∙. Ty se pak budou b∞hem °eÜenφ vaÜφ mφstnosti p°ehrßvat v nßhodnΘm
po°adφ. P°φklad si m∙₧ete prohlΘdnout u mφstnosti "Adolf", kterß mß jeden soubor
s hudbou. Pokud takov²to adresß° nevytvo°φte, bude se p°ehrßvat b∞₧nß hudba
hry.
- Zßv∞rem -
Nynφ u₧ vφte vÜe, co je pot°eba k vytvo°enφ vlastnφ mφstnosti. D∙le₧itou
podmφnkou samoz°ejm∞ je, aby vaÜe mφstnost m∞la °eÜenφ - to ovÜem v∙bec neznamenß,
₧e by muselo b²t jednoduchΘ.
Pokud n∞jakΘ mφstnosti vytvo°φte, budeme jen rßdi, pokud nßm je
v p°φloze e-mailu poÜlete ukßzat
(nejlΘpe se vÜemi soubory, kterΘ k mφstnosti pat°φ - obrßzky,
dialogy, MP3 soubory atd.)
VÜechny vaÜe mφstnosti zkusφme vy°eÜit, a pokud se nßm n∞kterß
bude opravdu lφbit, m∙₧eme vßm k nφ klidn∞ doplnit p°φpadnou grafiku (v²jimeΦn∞
snad i namluvit repliky) a poslat vßm ji (i s naÜφm nejlepÜφm
°eÜenφm) zp∞t. Krom∞ toho vßm m∙₧eme poslat i mφstnosti od jin²ch hrßΦ∙.
Mφstnosti takΘ rßdi umφstφme na p°φpadn²ch WWW strßnkßch hry.
V adresß°i "DATA\UserLevels" se u₧ nachßzejφ dv∞ p°ipravenΘ mφstnosti - "Adolf"
a "LongDrinkRemake". Ta prvnφ je replikou snad nejznßm∞jÜφ ·rovn∞ ze Sokobana,
ta druhß je replikou jednΘ mφstnosti ze samotn²ch mravenc∙. Krom∞ t∞chto mφstnostφ
je vßm k dispozici i n∞kolik MP3 soubor∙ jednotliv²ch mravenc∙ spolu
s obrßzky n∞kolika p°edm∞t∙ - v∞tviΦek, kamen∙, h°ebφk∙ atd.
Te∩ u₧ to tedy chce jenom n∞jak² ∩ßbelsk² nßpad...
Copyright © 2004 - Karel èt∞pka jr.